package com.xp.entity;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * 流程定义实体类
 * 
 * @author xp
 * @since 2025-01-01
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("flow_definition")
public class FlowDefinition extends BaseEntity {

    /**
     * 流程编码
     */
    @TableField("flow_code")
    private String flowCode;

    /**
     * 流程名称
     */
    @TableField("flow_name")
    private String flowName;

    /**
     * 流程描述
     */
    @TableField("flow_desc")
    private String flowDesc;

    /**
     * 流程分类
     */
    @TableField("category")
    private String category;

    /**
     * 标签（JSON数组）
     */
    @TableField("tags")
    private String tags;

    /**
     * 流程图数据（JSON）
     */
    @TableField("flow_data")
    private String flowData;

    /**
     * LiteFlow EL表达式配置
     */
    @TableField("liteflow_config")
    private String liteflowConfig;

    /**
     * 版本号
     */
    @TableField("version")
    private String version;

    /**
     * 状态：0-草稿，1-已发布，2-已废弃
     */
    @TableField("status")
    private Integer status;

    /**
     * 超时时间（秒）
     */
    @TableField("timeout")
    private Integer timeout;

    /**
     * 重试次数
     */
    @TableField("retry_count")
    private Integer retryCount;

    /**
     * 错误处理策略
     */
    @TableField("error_strategy")
    private String errorStrategy;

    /**
     * LiteFlow应用名称
     */
    @TableField("application_name")
    private String applicationName;

    /**
     * 创建人ID
     */
    @TableField("creator_id")
    private Long creatorId;

    /**
     * 是否删除：0-否，1-是
     */
    @TableField("deleted")
    @TableLogic
    private Integer deleted;
}